$PBExportHeader$w_a_sp_posibles_egresados812.srw
forward
global type w_a_sp_posibles_egresados812 from w_abm_reporte_maq_estado
end type
end forward

global type w_a_sp_posibles_egresados812 from w_abm_reporte_maq_estado
event ue_padron ( )
end type
global w_a_sp_posibles_egresados812 w_a_sp_posibles_egresados812

type variables

end variables

event ue_padron;long ll_row
string  ls_unidad_academica, ls_carrera, ls_legajo
STRING pLegajo, v_apellido, v_nombres, v_carrera, v_plan, v_titulo, v_titulofem, v_orientacionnomb, v_turno_examen, v_fecha_ingreso, v_fecha_egreso, v_promedio_general, v_promedio_sin_aplazos, v_estado, v_nro_insc

for ll_row = 1 to dw_reporte.rowCount()
	
	ls_unidad_academica = dw_reporte.getItemString(ll_row, 'unidad_academica')
	ls_carrera = dw_reporte.getItemString(ll_row, 'carrera')
	ls_legajo = dw_reporte.getItemString(ll_row, 'legajo')

/*ls_unidad_academica = "FCS";
ls_carrera = "301";
ls_legajo = "655958913010";*/

DECLARE sppasarapadron PROCEDURE FOR padron_egresados ( :ls_unidad_academica, :ls_carrera, :ls_legajo) USING SQLCA;


EXECUTE sppasarapadron;

	DO WHILE  SQLCA.SQLCODE = 0
		
FETCH sppasarapadron INTO 
		:pLegajo, :v_apellido, :v_nombres, :v_carrera, :v_plan, :v_titulo, :v_titulofem, :v_orientacionnomb, :v_turno_examen, :v_fecha_ingreso, :v_fecha_egreso, :v_promedio_general, :v_promedio_sin_aplazos, :v_estado, :v_nro_insc;
  
   
//INSERT INTO padron_egresados VALUES (:ls_unidad_academica, :v_nro_insc, :v_titulo, :v_carrera, :pLegajo, :v_plan, "1", :v_fecha_egreso, "", "", "", :v_promedio_general, :v_promedio_sin_aplazos, "", "", "", :v_estado, "", "") USING SQLCA;
	if SQLCA.SQLCODE = -1 then
			messageBox(this.title, 'FETCH 2:~r~n' + SQLCA.SQLERRTEXT)
			//ib_grabar = false
		end if

LOOP

CLOSE sppasarapadron; 


NEXT


messageBox("Atencion!", 'Se logro pasar los egresados al Padron')

end event

on w_a_sp_posibles_egresados812.create
call super::create
end on

on w_a_sp_posibles_egresados812.destroy
call super::destroy
end on

event ue_confirmar;//
long ll_row
string ls_unidad_academica, ls_carrera, ls_legajo, ls_titulo, ls_nro_inscripcion, ls_respuesta
string ls_titulo_ret, ls_plan_ret, ls_version_ret, ls_orientacion_ret, ls_ciclo_ret, ls_materia_ret
double ld_puntos_ret
boolean lb_egresado

DECLARE spInsertarTitulo PROCEDURE FOR sp_insertar_titulo ( :ls_unidad_academica, :ls_carrera, :ls_legajo, :ls_titulo, :ls_respuesta) USING SQLCA;
//
ls_respuesta = 'P' // Respuesta parcial.

for ll_row = 1 to dw_reporte.rowCount()
	
	ls_unidad_academica = dw_reporte.getItemString(ll_row, 'unidad_academica')
	ls_nro_inscripcion = dw_reporte.getItemString(ll_row,  'nro_inscripcion')
	ls_carrera = dw_reporte.getItemString(ll_row, 'carrera')
	ls_legajo = dw_reporte.getItemString(ll_row, 'legajo')
	ls_titulo = dw_reporte.getItemString(ll_row, 'titulo')
	
	lb_egresado = true
	// Inserto el registro.
	EXECUTE spInsertarTitulo ;
	
	if SQLCA.SQLCODE = -1 then
		messageBox(this.title, 'EXECUTE:~r~n' + SQLCA.SQLERRTEXT)
		ib_grabar = false
	end if
	
	FETCH spInsertarTitulo INTO 
		:ls_titulo_ret, :ls_plan_ret, :ls_version_ret, :ls_orientacion_ret, :ls_ciclo_ret, :ls_materia_ret, :ld_puntos_ret ;
		
	if SQLCA.SQLCODE = -1 then
		messageBox(this.title, 'FETCH 1:~r~n' + SQLCA.SQLERRTEXT)
		ib_grabar = false
	end if
		
	DO WHILE  SQLCA.SQLCODE = 0
		
		lb_egresado = false
		
		FETCH spInsertarTitulo INTO 
			:ls_titulo_ret, :ls_plan_ret, :ls_version_ret, :ls_orientacion_ret, :ls_ciclo_ret, :ls_materia_ret, :ld_puntos_ret ;
			
		if SQLCA.SQLCODE = -1 then
			messageBox(this.title, 'FETCH 2:~r~n' + SQLCA.SQLERRTEXT)
			ib_grabar = false
		end if
		
	LOOP

	CLOSE spInsertarTitulo;
	
	if SQLCA.SQLCODE = -1 then
		messageBox(this.title, 'CLOSE:~r~n' + SQLCA.SQLERRTEXT)
		ib_grabar = false
	end if
	
	if not lb_egresado then continue
	
	UPDATE sga_titulos_otorg 
	SET estado = :is_estado_nuevo
	WHERE 
		sga_titulos_otorg.unidad_academica = :ls_unidad_academica AND
		sga_titulos_otorg.nro_inscripcion = :ls_nro_inscripcion AND
		sga_titulos_otorg.titulo = :ls_titulo
	USING SQLCA;
	
	if SQLCA.SQLCODE = -1 then
		messageBox(this.title, 'UPDATE:~r~n' + SQLCA.SQLERRTEXT)
		ib_grabar = false
	end if
next
end event

